home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-30 | 39.2 KB | 1,401 lines |
- GLOBAL hSetup AS INTEGER
- GLOBAL fFrameInit AS INTEGER
- GLOBAL fInstallInit AS INTEGER
-
- CONST WF_STANDARD = 16
- CONST WF_ENHANCED = 32
- CONST WF_WINNT = 16384
-
- CONST MB_OK = 0
- CONST MB_ICONHAND = 16
- CONST MB_TASKMODAL = 8192
-
- DECLARE FUNCTION GetWindowsDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
- DECLARE FUNCTION GetSystemDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
- DECLARE FUNCTION GetVersion LIB "kernel" AS INTEGER
- DECLARE FUNCTION GetWinFlags LIB "kernel" AS LONG
-
- CONST cmoCopy = 2
- CONST cmoOverwrite = 1024
- CONST cmoNone = 0
-
- CONST femExists = 0
-
- CONST grcOkay = 0
- CONST grcNotOkay = 1
- CONST grcUserQuit = 48
-
- CONST cbSymValMax = 512
-
- CONST STFERR = 1024
- CONST STFQUIT = 1025
-
- DECLARE FUNCTION FOpenInf LIB "mscomstf.dll" (szFile$, fCheck%, fCheckSyms%) AS INTEGER
- DECLARE FUNCTION HShowWaitCursor LIB "msshlstf.dll" AS INTEGER
- DECLARE FUNCTION FRestoreCursor LIB "msshlstf.dll" (hPrev%) AS INTEGER
- DECLARE FUNCTION FMakeListInfSectionField LIB "mscomstf.dll" (szSym$, szSect$, iField%) AS INTEGER
-
- DECLARE FUNCTION FSetBitmap LIB "msshlstf.dll" (szDll$, Bitmap%) AS INTEGER
- DECLARE FUNCTION FDoDialogExt LIB "msuilstf.dll" (hwnd%, szDll$, Dlg%, szDlgProc$, szHelpDll$, HelpDlg%, szHelpProc$) AS INTEGER
- DECLARE FUNCTION FKillNDialogs LIB "msuilstf.dll" (n%) AS INTEGER
- DECLARE SUB SetWindowText LIB "User" (hwnd%, lpString$)
- DECLARE FUNCTION FSetSymbolValue LIB "msshlstf.dll" (szSymbol$, szValue$) AS INTEGER
- DECLARE FUNCTION FRemoveSymbol LIB "mscomstf.dll" (szSym$) AS INTEGER
- DECLARE FUNCTION CbGetSymbolValue LIB "mscomstf.dll" (szSymbol$, szValue$, Length%) AS INTEGER
- DECLARE FUNCTION UsGetListLength LIB "mscomstf.dll" (szSymbol$) AS INTEGER
- DECLARE FUNCTION CbGetListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$, cbMax%) AS INTEGER
- DECLARE FUNCTION FAddListItem LIB "mscomstf.dll" (szListSymbol$, szListItem$) AS INTEGER
- DECLARE FUNCTION FReplaceListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$) AS INTEGER
-
- DECLARE FUNCTION InitializeFrame LIB "msshlstf.dll" (szCmdLine$) AS INTEGER
- DECLARE FUNCTION HwndFrame LIB "msshlstf.dll" AS INTEGER
- DECLARE FUNCTION HinstFrame LIB "msshlstf.dll" AS INTEGER
-
- DECLARE SUB ProSetPos LIB "msinsstf.dll" (x%, y%)
- DECLARE FUNCTION FAddSectionFilesToCopyList LIB "mscomstf.dll" (szSect$, szSrc$, szDest$) AS INTEGER
- DECLARE FUNCTION FAddSectionKeyFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
- DECLARE FUNCTION GrcCopyFilesInCopyList LIB "msinsstf.dll" (hInstance%) AS INTEGER
- DECLARE FUNCTION FRemoveIniSection LIB "msinsstf.dll" (szFile$, szSect$, cmo%) AS INTEGER
- DECLARE FUNCTION FCreateIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
- DECLARE FUNCTION FRemoveIniKey LIB "msinsstf.dll" (szFile$, szSect$, szKey$, cmo%) AS INTEGER
- DECLARE FUNCTION FCreateProgManGroup LIB "msinsstf.dll" (szGroup$, szPath$, cmo%) AS INTEGER
- DECLARE FUNCTION FCreateProgManItem LIB "msinsstf.dll" (szGroup$, szItem$, szCmd$, cmo%) AS INTEGER
- DECLARE FUNCTION FShowProgManGroup LIB "msinsstf.dll" (szGroup$, szCmd$, cmo%) AS INTEGER
- DECLARE SUB ResetCopyList LIB "msinsstf.dll"
- DECLARE FUNCTION LcbGetCopyListCost LIB "msinsstf.dll" (szExtraList$, szCostList$, szNeedList$) AS LONG
- DECLARE FUNCTION FInitializeInstall LIB "msinsstf.dll" (hinst%, hwndFrame%) AS INTEGER
- DECLARE FUNCTION FIsDirWritable LIB "msinsstf.dll" (szDir$) AS INTEGER
- DECLARE FUNCTION FAddToBillboardList LIB "msinsstf.dll" (szDll$, idDlg%, szProc$, lTicks&) AS INTEGER
- DECLARE FUNCTION SetDecompMode LIB "msinsstf.dll" (fMode%) AS INTEGER
-
- DECLARE SUB SetBitmap(szDll$, Bitmap%)
- DECLARE FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS STRING
- DECLARE SUB UIPop (n%)
- DECLARE SUB UIPopAll
- DECLARE SUB SetTitle (sz$)
- DECLARE SUB ReadInfFile (szFile$)
- DECLARE SUB SetSymbolValue (szSymbol$, szValue$)
- DECLARE SUB RemoveSymbol (szSym$)
- DECLARE FUNCTION GetSymbolValue (szSymbol$) AS STRING
- DECLARE FUNCTION GetListLength(szSymbol$) AS INTEGER
- DECLARE FUNCTION GetListItem(szSymbol$, n%) AS STRING
- DECLARE SUB AddListItem(szSymbol$, szItem$)
- DECLARE SUB ReplaceListItem(szSymbol$, n%, szItem$)
-
- DECLARE FUNCTION InitFrame (szCmdLine$) AS INTEGER
- DECLARE FUNCTION InitSetup (szCmdLine$) AS INTEGER
-
- DECLARE FUNCTION ShowWaitCursor AS INTEGER
- DECLARE SUB RestoreCursor (hPrev%)
- DECLARE SUB MakeListFromSectionFilename (szSym$, szSect$)
-
- DECLARE SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$)
- DECLARE SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
- DECLARE SUB CopyFilesInCopyList
- DECLARE SUB RemoveIniSection (szFile$, szSect$, cmo%)
- DECLARE SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
- DECLARE SUB RemoveIniKey (szFile$, szSect$, szKey$, cmo%)
- DECLARE SUB CreateProgmanGroup (szGroup$, szPath$, cmo%)
- DECLARE SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%)
- DECLARE SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%)
- DECLARE SUB ClearCopyList
- DECLARE FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) AS LONG
- DECLARE SUB InitInstall
- DECLARE SUB AddToBillboardList (szDll$, idDlg%, szProc$, lTicks&)
- DECLARE SUB SetCopyGaugePosition (x%, y%)
- DECLARE FUNCTION IsDirWritable (szDir$) AS INTEGER
-
- DECLARE FUNCTION GetWindowsMajorVersion AS INTEGER
- DECLARE FUNCTION GetWindowsMinorVersion AS INTEGER
- DECLARE FUNCTION GetWindowsMode AS INTEGER
- DECLARE FUNCTION GetWindowsDir AS STRING
- DECLARE FUNCTION GetWindowsSysDir AS STRING
-
- DECLARE FUNCTION CbGetVersionOfFile LIB "msdetstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
- DECLARE FUNCTION GetVersionOfFile(szFile$) AS STRING
-
- DECLARE FUNCTION CbGetIniKeyString LIB "msdetstf.dll" (szFile$, szSect$, szKey$, szBuf$, cbBuf%) AS INTEGER
- DECLARE FUNCTION GetIniKeyString (szFile$, szSect$, szKey$) AS STRING
- DECLARE FUNCTION StripDir (szPath$) AS STRING
-
- FUNCTION StripDir (szPath$) STATIC AS STRING
- IF szPath$ = "" THEN
- StripDir = ""
- GOTO STRIPRET
- ELSEIF (MID$(szPath$, LEN(szPath$), 1)) = "\" THEN
- szPath$ = MID$(szPath$, 1, LEN(szPath$)-1)
- END IF
- cChar% = 1
- WHILE (cChar% <> 0)
- cLast% = cChar%
- cChar% = INSTR(cLast%+1, szPath$, "\")
- WEND
- StripDir = MID$(szPath$, 1, cLast%-1)
- STRIPRET:
- END FUNCTION
-
-
- FUNCTION GetIniKeyString (szFile$, szSect$, szKey$) STATIC AS STRING
- cb% = 512
- szBuf$ = STRING$(cb%, 32)
- cbRet% = CbGetIniKeyString(szFile$, szSect$, szKey$, szBuf$, cb%)
- GetIniKeyString = szBuf$
- szBuf$ = ""
- END FUNCTION
-
- FUNCTION GetVersionOfFile (szFile$) STATIC AS STRING
- cb% = 30
- szBuf$ = STRING$(cb%, 32)
- cbRet% = CbGetVersionOfFile(szFile$, szBuf$, cb%)
- GetVersionOfFile = szBuf$
- szBuf$ = ""
- END FUNCTION
-
- FUNCTION InitSetup(szCmdLine$) STATIC AS INTEGER
- fFrameInit = 0
- fInstallInit = 0
-
- IF hSetup > 0 THEN
- END IF
-
- i% = InitFrame(szCmdLine$)
- fFrameInit = 1
-
- InitInstall
- fInstallInit = 1
-
- InitSetup = i%
- END FUNCTION
-
- FUNCTION InitFrame(szCmdLine$) STATIC AS INTEGER
- IF hSetup > 0 THEN
- ELSE
- i% = InitializeFrame(szCmdLine$)
- IF i% = -1 THEN
- END
- ELSEIF i% = 0 THEN
- END
- ELSE
- InitFrame = i%
- END IF
- END IF
- END FUNCTION
-
- SUB SetBitmap(szDll$, Bitmap%) STATIC
- IF FSetBitmap(szDll$, Bitmap%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB SetTitle(sz$) STATIC
- SetWindowText HwndFrame(), sz$
- END SUB
-
- SUB ReadInfFile (szFile$) STATIC
- IF FOpenInf(szFile$, 1, 0) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) STATIC AS STRING
- IF FDoDialogExt(HwndFrame(), szDll$, Dlg%, szDlgProc$, szDll$, HelpDlg%, szHelpProc$) = 0 THEN
- ERROR STFERR
- ELSE
- UIStartDlg = GetSymbolValue("DLGEVENT")
- END IF
- END FUNCTION
-
- SUB UIPop (n%) STATIC
- IF FKillNDialogs(n%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB UIPopAll STATIC
- IF FKillNDialogs(65535) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- FUNCTION GetSymbolValue(szSymbol$) STATIC AS STRING
- szValue$ = string$(cbSymValMax,32)
- Length% = CbGetSymbolValue(szSymbol$, szValue$, cbSymValMax)
- GetSymbolValue = szValue$
- IF Length% >= cbSymValMax THEN
- ERROR STFERR
- END IF
- IF szSymbol$ = "" THEN
- ERROR STFERR
- END IF
- szValue$ = ""
- END FUNCTION
-
- FUNCTION GetListLength(szSymbol$) STATIC AS INTEGER
- GetListLength = UsGetListLength(szSymbol$)
- IF szSymbol$ = "" THEN
- ERROR STFERR
- END IF
- END FUNCTION
-
- FUNCTION GetListItem(szListSymbol$, nItem%) STATIC AS STRING
- szListItem$ = string$(cbSymValMax,32)
- Length% = CbGetListItem(szListSymbol$, nItem%, szListItem$, cbSymValMax)
- GetListItem = szListItem$
- IF Length% >= cbSymValMax THEN
- ERROR STFERR
- END IF
- IF szListSymbol$ = "" THEN
- ERROR STFERR
- END IF
- if nItem% <= 0 or nItem% > GetListLength(szListSymbol$) then
- ERROR STFERR
- end if
- szListItem$ = ""
- END FUNCTION
-
- SUB AddListItem(szSymbol$, szItem$) STATIC
- IF FAddListItem(szSymbol$, szItem$) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB ReplaceListItem(szSymbol$, n%, szItem$) STATIC
- IF FReplaceListItem(szSymbol$, n%, szItem$) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB SetSymbolValue(szSymbol$, szValue$) STATIC
- IF FSetSymbolValue(szSymbol$, szValue$) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB RemoveSymbol(szSym$) STATIC
- IF FRemoveSymbol(szSym$) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- FUNCTION ShowWaitCursor STATIC AS INTEGER
- ShowWaitCursor = HShowWaitCursor
- END FUNCTION
-
- SUB RestoreCursor (hPrev%) STATIC
- i% = FRestoreCursor(hPrev%)
- IF i% = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB MakeListFromSectionFilename (szSym$, szSect$) STATIC
- IF FMakeListInfSectionField(szSym$, szSect$, 1) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB InitInstall STATIC
- IF hSetup > 0 THEN
- ELSEIF FInitializeInstall(HinstFrame(), HwndFrame()) = 0 THEN
- END
- END IF
- END SUB
-
- SUB RemoveIniSection (szFile$, szSect$, cmo%) STATIC
- IF FRemoveIniSection(szFile$, szSect$, cmo%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
-
- SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
- IF FCreateIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB RemoveIniKey (szFile$, szSect$, szKey$, cmo%) STATIC
- IF FRemoveIniKey(szFile$, szSect$, szKey$, cmo%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB CreateProgmanGroup (szGroup$, szPath$, cmo%) STATIC
- IF FCreateProgManGroup(szGroup$, szPath$, cmo%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%) STATIC
- IF FShowProgManGroup(szGroup$, STR$(Cmd%), cmo%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB ClearCopyList STATIC
- ResetCopyList
- END SUB
-
- FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) STATIC AS LONG
- lNeed& = LcbGetCopyListCost (szExtraList$, szCostList$, szNeedList$)
- IF lNeed& < 0 THEN
- ERROR STFERR
- END IF
- GetCopyListCost = lNeed&
- END FUNCTION
-
- SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) STATIC
- szItemNew$ = szItem$
- IF szOther$ <> "" THEN
- szItemNew$ = szItem$ + "," + szOther$
- END IF
-
- IF FCreateProgManItem(szGroup$, szItemNew$, szCmd$, cmo%) = 0 THEN
- ERROR STFERR
- END IF
- szItemNew$ = ""
- END SUB
-
- SUB CopyFilesInCopyList STATIC
- grc% = GrcCopyFilesInCopyList (HinstFrame())
-
- IF grc% = grcUserQuit THEN
- ERROR STFQUIT
- ELSEIF grc% > 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$) STATIC
- IF FAddSectionFilesToCopyList (szSect$, szSrc$, szDest$) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
- IF FAddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB AddToBillboardList (szDll$, idDlg%, szProc$, lTicks&) STATIC
- IF FAddToBillboardList(szDll$, idDlg%, szProc$, lTicks&) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- SUB SetCopyGaugePosition (x%, y%) STATIC
- ProSetPos x%, y%
- END SUB
-
- FUNCTION IsDirWritable (szDir$) STATIC AS INTEGER
- IsDirWritable = FIsDirWritable(szDir$)
- END FUNCTION
-
- FUNCTION GetWindowsMajorVersion STATIC AS INTEGER
- GetWindowsMajorVersion = GetVersion() MOD 256
- END FUNCTION
-
- FUNCTION GetWindowsMinorVersion STATIC AS INTEGER
- GetWindowsMinorVersion = GetVersion() / 256
- END FUNCTION
-
- FUNCTION GetWindowsMode STATIC AS INTEGER
- GetWindowsMode = 0
- longTmp& = GetWinFlags()
- IF longTmp& AND WF_WINNT THEN
- GetWindowsMode = 3
- ELSEIF longTmp& AND WF_STANDARD THEN
- GetWindowsMode = 1
- ELSEIF longTmp& AND WF_ENHANCED THEN
- GetWindowsMode = 2
- END IF
- END FUNCTION
-
- FUNCTION GetWindowsDir STATIC AS STRING
- szBuf$ = string$(256, 32)
- cbBuf% = GetWindowsDirectory(szBuf$, 256)
-
- IF cbBuf% = 0 THEN
- GetWindowsDir = ""
- ERROR STFERR
- ELSE
- IF cbBuf% > 255 THEN
- ERROR STFERR
- END IF
- szBuf$ = RTRIM$(szBuf$)
- IF MID$(szBuf$, 1, 1) = "\" THEN
- szBuf$ = MID$(GetWindowsSysDir, 1, 2) + szBuf$
- ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
- szBuf$ = MID$(GetWindowsSysDir, 1, 3) + szBuf$
- END IF
- GetWindowsDir = szBuf$
- END IF
-
- szBuf$ = ""
- END FUNCTION
-
- FUNCTION GetWindowsSysDir STATIC AS STRING
- szBuf$ = string$(256, 32)
- cbBuf% = GetSystemDirectory(szBuf$, 256)
-
- IF cbBuf% = 0 THEN
- ERROR STFERR
- ELSE
- IF cbBuf% > 255 THEN
- ERROR STFERR
- END IF
- szBuf$ = RTRIM$(szBuf$)
- IF MID$(szBuf$, 1, 1) = "\" THEN
- szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
- ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
- szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
- END IF
- GetWindowsSysDir = szBuf$
- END IF
-
- szBuf$ = ""
- END FUNCTION
-
- CONST ynrcNo = 0
-
- DECLARE FUNCTION LcbFreeDrive LIB "msdetstf.dll" (nDrive%) AS LONG
- DECLARE FUNCTION FDoesFileExist LIB "msdetstf.dll" (szFileName$, mode%) AS INTEGER
- DECLARE FUNCTION FDoesIniKeyExist LIB "msdetstf.dll" (szFile$, szSect$, szKey$) AS INTEGER
- DECLARE FUNCTION YnrcBackupFile LIB "msinsstf.dll" (szFullPath$, szBackup$, cmo%) AS INTEGER
- DECLARE FUNCTION YnrcRemoveFile LIB "msinsstf.dll" (szFullPathSrc$, cmo%) AS INTEGER
- DECLARE FUNCTION FCopyOneFile LIB "msinsstf.dll" (szSrc$, szDest$, cmo%, fAppend%) AS INTEGER
-
- DECLARE FUNCTION GetFreeSpaceForDrive (szDrive$) AS LONG
- DECLARE FUNCTION DoesFileExist (szFile$, mode%) AS INTEGER
- DECLARE FUNCTION DoesIniKeyExist (szFile$, szSect$, szKey$) AS INTEGER
- DECLARE SUB RenameFile (szFullPath$, szBackup$)
- DECLARE SUB RemoveFile (szFullPathSrc$, cmo%)
- DECLARE SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%)
-
- FUNCTION GetFreeSpaceForDrive (szDrive$) STATIC AS LONG
- GetFreeSpaceForDrive = LcbFreeDrive(ASC(UCASE$(szDrive$)) - ASC("A") + 1)
- END FUNCTION
-
- FUNCTION DoesFileExist (szFileName$, mode%) STATIC AS INTEGER
- DoesFileExist = FDoesFileExist(szFileName$, mode%)
- END FUNCTION
-
- FUNCTION DoesIniKeyExist (szFile$, szSect$, szKey$) STATIC AS INTEGER
- DoesIniKeyExist = FDoesIniKeyExist(szFile$, szSect$, szKey$)
- END FUNCTION
-
- SUB RenameFile (szFullPath$, szBackup$) STATIC
- i% = YnrcBackupFile(szFullPath$, szBackup$, cmoNone)
- END SUB
-
- SUB RemoveFile (szFullPathSrc$, cmo%) STATIC
- i% = YnrcRemoveFile(szFullPathSrc$, cmo%) = ynrcNo
- END SUB
-
- SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%) STATIC
- IF FCopyOneFile(szFullPathSrc$, szFullPathDst$, (cmo OR cmoCopy), fAppend%) = 0 THEN
- ERROR STFERR
- END IF
- END SUB
-
- TRAP CleanupTrap From "MSSHLSTF.DLL"
-
- End Trap
-
- hSetup = InitSetup(COMMAND$)
-
- ON ERROR GOTO QUIT
-
- CONST MaxSectionLen = 32
- CONST MaxPathLen = 64
- CONST MaxListLen = 12
-
- TYPE FILEGRP
- OptionId As INTEGER
- Section AS STRING * MaxSectionLen
- Needs AS STRING * MaxListLen
- ExtraNeeds AS INTEGER
-
- SourcePath AS STRING * MaxPathLen
- DestPath AS STRING * MaxPathLen
-
- InList AS POINTER TO STRING * MaxListLen
- OutList AS POINTER TO STRING * MaxListLen
-
- END TYPE
-
- CONST APPFILES = 0
- CONST PUBFLTFILES = 1
- CONST WINFILES = 2
- CONST WINSYSFILES = 3
- CONST WORDARTFILES = 4
- CONST ARTGALRYFILES = 5
- CONST PUBFILES = 6
- CONST WIZFILES = 7
- CONST WIZCGMFILES = 8
- CONST BDRFILES = 9
-
- CONST MAXFILEGROUP = 10
-
- CONST APPOPTION = 1
- CONST TEMPOPTION = 2
- CONST ARTSOPTION = 3
- CONST FONTOPTION = 4
-
- CONST MAXOPTIONGROUP = 5
-
- GLOBAL FileGrp(MAXFILEGROUP) AS FILEGRP
-
- DECLARE FUNCTION GetListFromStringTable LIB "mscuistf.dll" as INTEGER
-
- DECLARE SUB AddListOptFiles(FileID%)
- DECLARE SUB AddFileGrpToCopyList(FileID%)
- DECLARE SUB ChangeDestPath (FileID%, DestPath$)
- DECLARE SUB InitFileGroup(FileID%, OptionID%, ExtraNeeds%, Section$, SourcePath$, ListID%)
- DECLARE SUB AddOptionGrpToCopyList(SectionId%)
- DECLARE FUNCTION WasFileCopied(FileID%, nID%) AS INTEGER
-
- SUB InitFileGroup(FileID%, OptionID%, ExtraNeeds%, Section$, SourcePath$, ListID%) STATIC
-
- FileGrp(FileID%).OptionId = OptionID%
- FileGrp(FileID%).Section = Section$
- FileGrp(FileID%).Needs = MID$(Section$,1,3) + MID$(STR$(FileID%),2) + "Needs"
- FileGrp(FileID%).ExtraNeeds = ExtraNeeds
- FileGrp(FileID%).SourcePath = SourcePath$
- FileGrp(FileID%).DestPath = ""
-
- IF ListID% <> 0 THEN
- ALLOCATE FileGrp(FileID%).InList , 1
- ALLOCATE FileGrp(FileID%).OutList, 1
-
- FileGrp(FileID%).InList[0] = MID$(Section$,1,3) + MID$(STR$(FileID%),2) + "In"
- FileGrp(FileID%).OutList[0] = MID$(Section$,1,3) + MID$(STR$(FileID%),2) + "Out"
-
- SetSymbolValue "ListSymbol", FileGrp(FileID%).InList[0]
- SetSymbolValue "ListID", STR$(ListID)
- i% = GetListFromStringTable()
- SetSymbolValue "ListSymbol", FileGrp(FileID%).OutList[0]
- i% = GetListFromStringTable()
- RemoveSymbol "ListSymbol"
- RemoveSymbol "ListID"
- END IF
-
- END SUB
-
- STATIC SUB AddFileGrpToCopyList(FileID%)
- AddSectionFilesToCopyList RTRIM$(FileGrp(FileID%).Section), RTRIM$(FileGrp(FileID%).SourcePath), RTRIM$(FileGrp(FileID%).DestPath)
- END SUB
-
- SUB AddOptionGrpToCopyList(OptionId%) STATIC
- FOR cCount% = 0 TO (MAXFILEGROUP-1) STEP 1
- IF FileGrp(cCount%).OptionId = OptionId% THEN
- AddSectionFilesToCopyList RTRIM$(FileGrp(cCount%).Section), RTRIM$(FileGrp(cCount%).SourcePath), RTRIM$(FileGrp(cCount%).DestPath)
- END IF
- NEXT cCount%
- END SUB
-
- STATIC SUB AddListOptFiles(FileID%)
-
- InputList$ = FileGrp(FileID%).InList[0]
- OutputList$ = FileGrp(FileID%).OutList[0]
- Section$ = RTRIM$(FileGrp(FileID%).Section)
-
- NoOfInput% = GetListLength(InputList$)
- NoOfOutput% = GetListLength(OutputList$)
-
- j% = 1
- FOR i% = 1 To NoOfOutput% STEP 1
-
- WHILE (GetListItem(OutputList$, i%) <> GetListItem(InputList$, j%))
- j% = j% + 1
- IF (j% > NoOfInput%) THEN
- EXIT FOR
- END IF
- WEND
-
- szKey$ = RTRIM$(FileGrp(FileID%).Section) + MID$(STR$(j%), 2)
-
- AddSectionKeyFileToCopyList RTRIM$(FileGrp(FileID%).Section), szKey$, RTRIM$(FileGrp(FileID%).SourcePath), RTRIM$(FileGrp(FileID%).DestPath)
-
- NEXT i%
-
- InputList$ = ""
- OutputList$ = ""
- Section$ = ""
- END SUB
-
- FUNCTION WasFileCopied(FileID%, nID AS INTEGER) STATIC AS INTEGER
-
- WasFileCopied = 0
-
- InputList$ = FileGrp(FileID%).InList[0]
- OutputList$ = FileGrp(FileID%).OutList[0]
-
- NoOfInput% = GetListLength(InputList$)
- NoOfOutput% = GetListLength(OutputList$)
-
- j% = 1
- FOR i% = 1 To NoOfOutput% STEP 1
-
- WHILE (GetListItem(OutputList$, i%) <> GetListItem(InputList$, j%))
- j% = j% + 1
- IF (j% > NoOfInput%) THEN
- EXIT FOR
- END IF
- WEND
-
- IF j% = nID% THEN
- WasFileCopied = 1
- END IF
-
- NEXT i%
-
- InputList$ = ""
- OutputList$ = ""
-
- END FUNCTION
-
- SUB ChangeDestPath (FileID%, DestPath$) STATIC
- FileGrp(FileID%).DestPath = DestPath$
- END SUB
-
- TYPE DRIVESTAT
- Drive AS STRING * 1
- DriveNo AS INTEGER
- Cost AS LONG
- Free AS LONG
- END TYPE
-
- GLOBAL EXTRACOSTS$
-
- DECLARE SUB InitSizeCalLib
- DECLARE SUB InitDriveStat(DriveStat AS POINTER TO DRIVESTAT, Drive$)
- DECLARE SUB RecalcPath
- DECLARE SUB SetDriveStatus(DriveStat AS POINTER TO DRIVESTAT, NoOfDrive%)
- DECLARE SUB RecalcOptFiles(OptionID%)
-
- SUB InitSizeCalLib STATIC
- EXTRACOSTS$ = "ExtraCosts"
- FOR i% = 1 TO 26 STEP 1
- AddListItem EXTRACOSTS$, "0"
- NEXT i%
- END SUB
-
- SUB InitDriveStat(DriveStat AS POINTER TO DRIVESTAT, Drive$) STATIC
- DriveStat[0].Drive = MID$(Drive$, 1, 1)
- DriveStat[0].DriveNo = ASC(UCASE$(DriveStat[0].Drive)) - ASC("A") + 1
- DriveStat[0].Cost = 0
- DriveStat[0].Free = 0
- END SUB
-
- SUB SetDriveStatus(DriveStat AS POINTER TO DRIVESTAT, NoOfDrive%) STATIC
- FOR cCount% = 0 TO (NoOfDrive-1) STEP 1
- cost& = 0
- OptionID% = 1
- FOR cCount2% = 0 TO (MAXFILEGROUP-1) STEP 1
- IF FileGrp(cCount2%).OptionId = OptionID% THEN
- cost& = cost& + VAL(GetListItem(FileGrp(cCount2%).Needs, DriveStat[cCount%].DriveNo))
- OptionID = OptionID + 1
- END IF
- NEXT cCount2%
- DriveStat[cCount%].Cost = cost&
-
- DriveStat[cCount%].Free = GetFreeSpaceForDrive(DriveStat[cCount%].Drive)
- NEXT cCount%
- END SUB
-
- SUB RecalcPath STATIC
- FOR cCount% = 1 TO (MAXOPTIONGROUP - 1)
- RecalcOptFiles cCount%
- NEXT cCount%
- END SUB
-
- SUB RecalcOptFiles(OptionID%) STATIC
-
- ClearCopyList
- AddOptionGrpToCopyList OptionId%
-
- FOR cCount% = 0 TO (MAXFILEGROUP-1) STEP 1
-
- IF FileGrp(cCount%).OptionId = OptionId% THEN
- ListSym$ = FileGrp(cCount%).Needs
-
- fExtra% = 0
- ndrive% = ASC(ucase$(MID$(FileGrp(cCount%).DestPath,1,1))) - ASC("A") + 1
- ExtraNeeds% =0
- FOR cCount2% = 0 TO (MAXFILEGROUP-1) STEP 1
- IF (FileGrp(cCount2%).OptionId = OptionId%) AND (FileGrp(cCount2%).ExtraNeeds <> 0) THEN
- ExtraNeeds% = ExtraNeeds% + FileGrp(cCount2%).ExtraNeeds
- fExtra% = 1
- END IF
- NEXT cCount2%
-
- IF ExtraNeeds% <> 0 THEN
- ReplaceListItem EXTRACOSTS$, ndrive%, STR$(ExtraNeeds% * 1024)
- ELSE
- ReplaceListItem EXTRACOSTS$, ndrive%, STR$(0)
- END IF
-
- cost& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
-
- EXIT FOR
- END IF
- NEXT cCount%
-
- IF fExtra% THEN
- ReplaceListItem EXTRACOSTS$, ndrive%, "0"
- END IF
-
- ListSym$ = ""
- END SUB
-
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION FilePath (FileID%, szFile$) AS STRING
- DECLARE FUNCTION WinVersion(MajorVer%, MinorVer%) AS INTEGER
- DECLARE SUB SetIniKeyValue(szFile$, szSect$, szKey$, szValue$)
-
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
- FUNCTION FilePath (FileID%, szFile$) STATIC AS STRING
- szDir$ = RTRIM$(FileGrp(FileID%).DestPath)
- IF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- FilePath = szDir$ + szFile$
- ELSE
- FilePath = szDir$ + "\" + szFile$
- END IF
- szDir$ = ""
- END FUNCTION
-
- FUNCTION WinVersion(MajorVer%, MinorVer%) STATIC AS INTEGER
- i% = GetWindowsMajorVersion()
- j% = GetWindowsMinorVersion()
-
- IF (i% > MajorVer%) OR ((i% = MajorVer%) AND (j% >= MinorVer%)) THEN
- WinVersion = 1
- ELSE
- WinVersion = 0
- END IF
- END FUNCTION
-
- SUB SetIniKeyValue(szFile$, szSect$, szKey$, szValue$) STATIC
- IF DoesIniKeyExist(szFile$, szSect$, szKey$) THEN
- RemoveIniKey szFile$, szSect$, szKey$, cmoNone
- END IF
-
- CreateIniKeyValue szFile$, szSect$, szKey$, szValue$, cmoNone
- END SUB
-
- CONST WELCOME = 100
- CONST ASKQUIT = 200
- CONST DESTPATHN = 300
- CONST EXITFAILURE = 400
- CONST BILLBOARD = 4545
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST APPHELP = 900
- CONST SETUPOPTIONS = 1000
- CONST PREVPUB = 1100
- CONST HELPPATH = 1200
- CONST HELPCUST = 1300
- CONST CALCFILE = 1400
- CONST WRITEINI = 1500
- CONST EXITREBOOT = 1600
- CONST MULTILIST = 5200
- CONST CUSTINST = 6200
- CONST TOOBIG = 6300
- CONST BADPATH = 6400
-
- CONST STFVERERR = 124
- CONST STFPUBRUN = 125
- CONST STFSHARE = 126
- CONST STFNODE = 127
- CONST STFNONODE = 128
- CONST STFPUBINST= 131
-
- CONST SCOK = 0
- CONST SCREBOOT = 1
- CONST SCERROR = 2
-
- CONST NORMAL_MODE = 0
- CONST ADMIN_MODE = 1
- CONST NETWORK_MODE = 2
-
- CONST COVLIST = 265
- CONST FLTLIST = 285
-
- CONST MSPNODISK = 17
-
- CONST NoOfSTATUS = 7
- CONST ALL = 0
-
- CONST LOGO = 1
-
- CONST WS_VISIBLE=&H10000000
- CONST WS_BORDER =&H00800000
- CONST WS_CLIPCHILDREN =&H02000000
- CONST GWL_STYLE =-16
- CONST SW_SHOWMAXIMIZED=3
-
- GLOBAL CUIDLL$
- GLOBAL WINDRIVE$
- GLOBAL SOURCE$
- GLOBAL DEST$
- GLOBAL DLG$
-
- GLOBAL PubVersion%
- GLOBAL RenamedPub%
-
- CONST MaxDrive = 2
- GLOBAL DriveStat(MaxDrive) AS DRIVESTAT
- CONST WindowsDrive = 0
- CONST DestDrive = 1
-
- GLOBAL DRIVETEXT$
- GLOBAL HELPPROC$
-
- GLOBAL SETUP_MODE%
- GLOBAL FINCUST%
- GLOBAL RB%
-
- DECLARE SUB CallDlg(DlgIDNo%, DlgProc$, HelpIDNo%)
- DECLARE SUB QuitProc
- DECLARE SUB InstallFiles
- DECLARE SUB SetDriveText(DriveStat AS POINTER TO DRIVESTAT)
- DECLARE SUB ChangeFileDestPath
- DECLARE SUB UpdateSizeCal(OptionNo%, fRecalc%)
- DECLARE SUB UpdateScreenStatus(OptionNo%)
- DECLARE SUB CalcFileSizes
- DECLARE SUB UpdatePubIni
- DECLARE SUB UpdateWinIni
- DECLARE SUB UpdateRegDat
- DECLARE SUB MakeReg(Load$, FileID%, szReg$, szExe$)
-
- DECLARE FUNCTION GETPATH(DefaultPath$, DlgTextID%) AS STRING
- DECLARE FUNCTION BitmapCntrlInit LIB "mscuistf.dll" as INTEGER
- DECLARE FUNCTION DARBitmapInit LIB "mscuistf.dll" as INTEGER
- DECLARE FUNCTION DoMessageBox LIB "mscuistf.dll" as INTEGER
- DECLARE FUNCTION IsPubRunning LIB "mscuistf.dll" as INTEGER
- DECLARE FUNCTION RunPub LIB "mscuistf.dll" as INTEGER
- DECLARE FUNCTION ScAddShare LIB "mscuistf.dll" as INTEGER
- DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
- DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
- DECLARE FUNCTION WritePrivateProfileString LIB "Kernel" (lpstr$, lpstr$, lpstr$, lpstr$) as INTEGER
- DECLARE FUNCTION FMakeReg LIB "mscuistf.dll" (lpstr$, lpstr$) AS INTEGER
-
- INIT:
- CUIDLL$ = "mscuistf.dll"
- HELPPROC$ = "FHelpDlgProc"
-
- hWnd% = HwndFrame()
- j& = SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
- i% = ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
-
- SetBitmap CUIDLL$, LOGO
-
- ''INTL
- SetTitle "Microsoft Publisher Demo Setup"
-
- i% = DARBitmapInit()
- i% = SetDecompMode(1)
-
- IF WinVersion(3,10) = 0 THEN
- ERROR STFVERERR
- END IF
-
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "MSPUB.INF"
- END IF
- ReadInfFile szInf$
- szInf$ = ""
-
- SOURCE$ = GetSymbolValue("STF_SRCDIR")
-
- SourceDll$ = SOURCE$
-
- '' detection of publisher
- INSTALLED$ = GetIniKeyString("WIN.INI", "Extensions", "pub")
- INSTALLED$ = MID$(INSTALLED$, 1, INSTR(INSTALLED$, " ")-1)
- DEST$ = StripDir(INSTALLED$)
- IF DEST$ = "" THEN
- DEST$ = mid$(GetWindowsDir,1,1) + ":\MSPUB"
- END IF
- PubVersion% = VAL(MID$(GetVersionOfFile(INSTALLED$),1,1))
- IF PubVersion% = 2 THEN
- ERROR STFPUBINST
- END IF
- RenamedPub% = 0
- INSTALLED$ = ""
-
- InitDriveStat VARPTR(DriveStat(WindowsDrive)), DEST$
- InitDriveStat VARPTR(DriveStat(DestDrive)), DEST$
-
- InitFileGroup APPFILES, APPOPTION, 0, "APP-MSPUB", SOURCE$, 0
- InitFileGroup BDRFILES, APPOPTION, 0, "ARTS-BDR", SOURCE$, 0
- InitFileGroup PUBFLTFILES, APPOPTION, 0, "FLT-PUB", SOURCE$, 0
- InitFileGroup WINFILES, APPOPTION, 10, "APP-WIN", SourceDll$, 0
- InitFileGroup WINSYSFILES, APPOPTION, 0, "APP-WINSYS", SourceDll$, 0
- InitFileGroup WORDARTFILES, APPOPTION, 0, "WORDART", SOURCE$, 0
- InitFileGroup ARTGALRYFILES, APPOPTION, 0, "ARTGALRY", SOURCE$, 0
- InitFileGroup WIZFILES, APPOPTION, 0, "TEMP-WIZ", SOURCE$, 0
- InitFileGroup WIZCGMFILES, APPOPTION, 0, "CGM-WIZ", SOURCE$, 0
- InitFileGroup PUBFILES, TEMPOPTION, 0, "TEMP-PUB", SOURCE$, 0
-
- SourceDll$ = ""
-
- DRIVETEXT$ = "DriveStatusText"
-
- FOR i% = 1 TO NoOfSTATUS STEP 1
- AddListItem DRIVETEXT$, ""
- NEXT i%
-
- InitSizeCalLib
-
- FINCUST% = 0
-
- WHILE 1
- SetSymbolValue "SetupMode", STR$(SETUP_MODE%)
- CallDlg WELCOME, "FInfoDlgProc", APPHELP
- RemoveSymbol "SetupMode"
-
- IF DLG$ = "CONTINUE" THEN
- UIPop 1
-
- IF IsPubRunning THEN
- ERROR STFPUBRUN
- END IF
-
- EXIT WHILE
- ELSE
- ERROR STFQUIT
- END IF
- WEND
-
- DOSPACE:
-
- CalcFileSizes
-
- FOR i% = 1 TO 7 STEP 1
- ReplaceListItem DRIVETEXT$, i, LTRIM$(GetListItem(DRIVETEXT$, i))
- NEXT i%
- OLDDEST$ = DEST$
-
- DEST$ = GETPATH(DEST$, DESTPATHN)
-
- IF (OLDDEST$ <> DEST$) THEN
- PubVersion% = VAL(MID$(GetVersionOfFile(MakePath(DEST$, "mspub.exe")),1,1))
- IF PubVersion% = 2 THEN
- ERROR STFPUBINST
- END IF
- CalcFileSizes
- END IF
-
- OLDDEST$ = ""
-
- IF (DriveStat(DestDrive).Cost > DriveStat(DestDrive).Free) OR (DriveStat(WindowsDrive).Cost > DriveStat(WindowsDrive).Free) THEN
- SetSymbolValue "MsgBoxID", STR$(MSPNODISK)
- SetSymbolValue "MsgBoxStyle", STR$(MB_OK+MB_ICONHAND)
- i% = DoMessageBox()
- RemoveSymbol "MsgBoxID"
- RemoveSymbol "MsgBoxStyle"
- UIPop 2
- GOTO DOSPACE
- END IF
- UIPop 1
-
-
- InstallFiles
-
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- IF RB% = 0 THEN
- dlgerr% = EXITSUCCESS
- ELSE
- dlgerr% = EXITREBOOT
- END IF
- ELSE
- dlgerr% = EXITFAILURE
- END IF
-
- DLG$ = ""
-
- IF ERR <> STFQUIT THEN
- WHILE 1
- SetSymbolValue "ErrMsg", STR$(ERR)
- CallDlg dlgerr%, "FInfo0DlgProc", APPHELP
- IF DLG$ <> "REACTIVATE" THEN
- EXIT WHILE
- END IF
- WEND
-
- UIPop 1
- END IF
-
- IF DLG$ = "CONTINUE" THEN
- IF RenamedPub% = 1 THEN
- SetSymbolValue "PubPath", FilePath(APPFILES,"MSPUB.EXE")
- ELSE
- SetSymbolValue "PubPath", FilePath(APPFILES,"PUBDEMO.EXE")
- END IF
- i% = RunPub()
- END IF
-
- ERRQUIT:
- END
-
- SUB CallDlg(DlgIDNo%, DlgProc$, HelpIDNo%) STATIC
- SetSymbolValue "DlgID", STR$(DlgIDNo%)
- DLG$ = UIStartDlg(CUIDLL$, DlgIDNo%, DlgProc$, HelpIDNo%, HELPPROC$)
- RemoveSymbol "DlgID"
- END SUB
-
- STATIC SUB InstallFiles
- ClearCopyList
-
- FOR Opt% = 1 TO MAXOPTIONGROUP-1 STEP 1
- AddOptionGrpToCopyList Opt%
- NEXT Opt%
-
- i% = BitmapCntrlInit()
- AddToBillboardList CUIDLL$, BILLBOARD, "FModelessDlgProc", 1
- SetCopyGaugePosition 140, 160
- CopyFilesInCopyList
- ClearCopyList
-
- IF DoesFileExist(FilePath(WINFILES, "ctl3d.dll"), femExists) THEN
- RemoveFile FilePath(WINFILES, "ctl3d.dll"), cmoNone
- END IF
-
- CallDlg WRITEINI, "FModelessDlgProc2", APPHELP
-
- IF (DoesFileExist(FilePath(APPFILES,"MSPUB.EXE"), femExists) = 0) THEN
- RenameFile FilePath(APPFILES, "PUBDEMO.EXE"), "MSPUB.EXE"
- RenamedPub% = 1
- END IF
-
- UpdateWinIni
- UpdatePubIni
- UpdateRegDat
-
- szValue$ = RTRIM$(FileGrp(WIZCGMFILES).DestPath)+", PUB20ART.IDX, PUB20ART.THM, Microsoft Publisher 2.0"
- SetIniKeyValue FilePath(WINFILES,"ARTGALRY.INI"), "Import", "File1", szValue$
- i% = WritePrivateProfileString(FilePath(WINFILES, "ARTGALRY.INI"), "", "", "")
-
- UIPop 1
-
- ''INTL Localize everything in quotes down to i% = ScAddShare
- MSSol$ = "MS Pub 2.0 Demo"
- szOpt$ = ""
-
- CreateProgmanGroup MSSol$, "", cmoNone
- ShowProgmanGroup MSSol$, 1, cmoNone
- IF RenamedPub% THEN
- CreateProgmanItem MSSol$, "Microsoft Publisher Demo", FilePath(APPFILES, "mspub.exe"), szOpt$, cmoOverwrite
- ELSE
- CreateProgmanItem MSSol$, "Microsoft Publisher Demo", FilePath(APPFILES, "pubdemo.exe"), szOpt$, cmoOverwrite
- END IF
- CreateProgmanItem MSSol$, "INFODEMO", FilePath(APPFILES, "infodemo.txt"), "", cmoOverwrite
- szOpt$ = ""
-
- i% = ScAddShare
- SELECT CASE i%
- CASE SCERROR
- ERROR STFSHARE
- CASE SCOK
- RB% = 0
- CASE SCREBOOT
- RB% = 1
- END SELECT
- END SUB
-
- SUB UpdateRegDat STATIC
- Load$ = FilePath(WINFILES, "REGEDIT.EXE /s ")
- MakeReg Load$, WORDARTFILES, "WordArt2", "WordArt2"
- MakeReg Load$, ARTGALRYFILES, "artgalry", "artgalry"
- IF RenamedPub% = 1 THEN
- MakeReg Load$, APPFILES, "mspub", "mspub"
- ELSE
- MakeReg Load$, APPFILES, "mspub", "pubdemo"
- END IF
-
- i% = RUN(Load$ + FilePath(WINFILES, "OLE2.REG"))
- i% = RUN(Load$ + FilePath(APPFILES, "OLE1.REG"))
- Load$ = ""
- END SUB
-
- SUB MakeReg(Load$, FileID%, szReg$, szExe$) STATIC
- Reg$ = FilePath(FileID, szReg$)
-
- i% = FMakeReg(Reg$, FilePath(FileID%, szExe$)+".exe")
- IF i% = 0 THEN
- ERROR STFERR
- END IF
- i% = RUN(Load$ + Reg$ + ".REG")
-
- Reg$ = ""
- END SUB
-
- SUB UpdateWinIni STATIC
- Ini$ = "WIN.INI"
- MsApps$ = MakePath(GetWindowsDir,"MSAPPS")
-
- szValue$ = FilePath(APPFILES, "MSPUB.EXE ^.pub")
- SetIniKeyValue Ini$, "Extensions", "pub", szValue$
-
- szValue$ = FilePath(PUBFLTFILES, "cgmimp.flt,CGM")
- SetIniKeyValue "WIN.INI", "MS Graphic Import Filters", "Computer Graphics MetaFile(.CGM)", szValue$
- szValue$ = FilePath(PUBFLTFILES, "wmfimp.flt,WMF")
- SetIniKeyValue "WIN.INI", "MS Graphic Import Filters", "Windows Metafile(.WMF)", szValue$
-
- SetIniKeyValue Ini$, "MSAPPS", "MSAPPS", MsApps$
- SetIniKeyValue Ini$, "MSAPPS", "WORDART", MakePath(MsApps$, "WORDART")
- SetIniKeyValue Ini$, "MSAPPS", "ARTGALRY", MakePath(MsApps$, "ARTGALRY")
-
- i% = WritePrivateProfileString(Ini$, "", "", "")
- szValue$ = ""
- Ini$ = ""
- MsApps$ = ""
- END SUB
-
- SUB UpdatePubIni STATIC
- Ini$ = FilePath(WINFILES,"MSPUB.INI")
-
- IF PubVersion% = 0 THEN
- RemoveIniSection Ini$, "Help", cmoNone
- RemoveIniSection Ini$, "Clipart", cmoNone
- szValue$ = FilePath(APPFILES,"hyph.dat")
- SetIniKeyValue Ini$, "Hyphenation", "Dictionary", szValue$
- END IF
-
- IF DoesIniKeyExist(Ini$, "Preferences", "ShowIntroductionToPublisher") THEN
- RemoveIniKey Ini$, "Preferences", "ShowIntroductionToPublisher", cmoNone
- END IF
-
- SetIniKeyValue Ini$, "Justification", "Default", "75,100,250,5,85,100,150,5"
- szValue$ = "75,100,250,0,85,100,150,0"
- SetIniKeyValue Ini$, "Justification", "Brush Script MT", szValue$
- SetIniKeyValue Ini$, "Justification", "Lucida Handwriting", szValue$
- SetIniKeyValue Ini$, "Justification", "Mistral", szValue$
- SetIniKeyValue Ini$, "Justification", "Vivaldi", szValue$
-
- ''INTL Localize down to the end of the Wizard section -
- '' down to the Logo Creator Plus line inclusive.
- '' Localize only the Wizard names - ex: "Ad"
- szValue$ = "PageWizard 2.0"
- SetIniKeyValue Ini$, szValue$, "Anzeige", "dembogus.wiz,AREA"
- SetIniKeyValue Ini$, szValue$, "Transparent", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Broschⁿre", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "GeschΣftspapiere", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Kalender", "dembogus.wiz,NEW,AREA"
- SetIniKeyValue Ini$, szValue$, "Gutschein", "dembogus.wiz,AREA"
- SetIniKeyValue Ini$, szValue$, "Umschlag", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Initiale", "dembogus.wiz,AREA"
- SetIniKeyValue Ini$, szValue$, "Flugblatt", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Karten", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Schlagzeilen", "dembogus.wiz,AREA"
- SetIniKeyValue Ini$, szValue$, "Papierflugzeug", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "GeschΣftsformulare", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Origami", "dembogus.wiz,NEW"
- SetIniKeyValue Ini$, szValue$, "Kassettenhⁿlle", "dembogus.wiz,NEW"
-
- '' 6363
- SetIniKeyValue Ini$, szValue$, "Magazin", "mspgorgm.wiz,NEW"
-
- SetIniKeyValue Ini$, szValue$, "Logo", "mspglogo.wiz,AREA"
-
- Demo$ = "DEMO.CCD "
- SetIniKeyValue Ini$, "Demo", "Gotobackground", Demo$ + "-p background1"
- SetIniKeyValue Ini$, "Demo", "Grouping", Demo$ + "-p grouping1"
- SetIniKeyValue Ini$, "Demo", "Layering", Demo$ + "-p layer1"
- SetIniKeyValue Ini$, "Demo", "FlowButton", Demo$ + "-p linking1"
- SetIniKeyValue Ini$, "Demo", "Style", Demo$ + "-p style1"
- SetIniKeyValue Ini$, "Demo", "Table", Demo$ + "-p tables1"
- SetIniKeyValue Ini$, "Demo", "startup", "intropub.ccd"
-
- SetIniKeyValue Ini$, "Cue Cards", "Blank Page", "blankcc.ccd -h %h"
- SetIniKeyValue Ini$, "Cue Cards", "Blank Page_Menu", "blankcc.ccd -p bmmenu -h %h"
- SetIniKeyValue Ini$, "Cue Cards", "Template", "tempcc.ccd -h %h"
- SetIniKeyValue Ini$, "Cue Cards", "Template_Menu", "tempcc.ccd -p tmainmenu -h %h"
- SetIniKeyValue Ini$, "Cue Cards", "Template_Wizard", "tempcc.ccd -p tmpwizmain1 -h %h"
- SetIniKeyValue Ini$, "Cue Cards", "Newsletter", "newscc.ccd -h %h"
- SetIniKeyValue Ini$, "Cue Cards", "Newsletter_Menu", "newscc.ccd -p nmainmenu -h %h"
-
- i% = WritePrivateProfileString(Ini$, "", "", "")
- LNOWRITE:
- Ini$ = ""
- Demo$ = ""
- szValue$ = ""
- END SUB
-
- SUB CalcFileSizes STATIC
- CallDlg CALCFILE, "FModelessDlgProc2", APPHELP
- ChangeFileDestPath
- UpdateSizeCal ALL, 1
- UpdateScreenStatus ALL
- UIPop 1
- END SUB
-
- SUB SetDriveText(DriveStat AS POINTER TO DRIVESTAT) STATIC
-
- WinDriveNo% = ASC(ucase$(MID$(GetWindowsDir,1,1))) - ASC("A") + 1
-
- ReplaceListItem DRIVETEXT$, 1, DriveStat[DestDrive].Drive + ":"
- ReplaceListItem DRIVETEXT$, 2, STR$(DriveStat[DestDrive].Cost / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 3, STR$(DriveStat[DestDrive].Free / 1024) + " K"
-
- IF DriveStat[DestDrive].DriveNo = WinDriveNo% THEN
- ReplaceListItem DRIVETEXT$, 4, ""
- ReplaceListItem DRIVETEXT$, 5, ""
- ReplaceListItem DRIVETEXT$, 6, ""
- ELSE
- IF DriveStat[WindowsDrive].Cost = 0 THEN
- ReplaceListItem DRIVETEXT$, 4, ""
- ReplaceListItem DRIVETEXT$, 5, ""
- ReplaceListItem DRIVETEXT$, 6, ""
- ELSE
- ReplaceListItem DRIVETEXT$, 4, DriveStat[WindowsDrive].Drive + ":"
- ReplaceListItem DRIVETEXT$, 5, STR$(DriveStat[WindowsDrive].Cost / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 6, STR$(DriveStat[WindowsDrive].Free / 1024) + " K"
- END IF
- END IF
-
- END SUB
-
- SUB ChangeFileDestPath STATIC
-
- Win$ = GetWindowsDir
- Sys$ = GetWindowsSysDir
- MsApps$ = MakePath(GetWindowsDir,"MSAPPS")
-
- InitDriveStat VARPTR(DriveStat(DestDrive)), DEST$
- ReplaceListItem DRIVETEXT$, 7, DEST$
-
- ChangeDestPath APPFILES, DEST$
-
- '' INTL Localize the directory names in the following lines.
- '' Stop at the first blank line.
- ChangeDestPath PUBFILES, MakePath(DEST$,"VORLAGEN")
- ChangeDestPath WIZFILES, MakePath(DEST$,"ASSIST")
- ChangeDestPath WIZCGMFILES, MakePath(DEST$,"ASSIST")
- ChangeDestPath BDRFILES, MakePath(DEST$,"RAHMEN")
-
- ChangeDestPath WINFILES, Win$
- ChangeDestPath WINSYSFILES, Sys$
- ChangeDestPath WORDARTFILES, MakePath(MsApps$,"WORDART")
- ChangeDestPath ARTGALRYFILES, MakePath(MsApps$,"ARTGALRY")
- ChangeDestPath PUBFLTFILES, MakePath(MsApps$,"GRPHFLT")
-
- Win$ = ""
- Sys$ = ""
- MsApps$ = ""
-
- END SUB
-
- SUB UpdateSizeCal(OptionNo%, fRecalc%) STATIC
- CursorSave% = ShowWaitCursor()
- IF fRecalc% <> 0 THEN
- IF OptionNo% = 0 THEN
- RecalcPath
- ELSE
- RecalcOptFiles OptionNo%
- END IF
- END IF
- SetDriveStatus VARPTR(DriveStat(0)), MaxDrive
- RestoreCursor CursorSave%
- END SUB
-
- SUB UpdateScreenStatus(OptionNo%) STATIC
- CursorSave% = ShowWaitCursor()
- SetDriveText VARPTR(DriveStat(0))
- RestoreCursor CursorSave%
- END SUB
-
- STATIC FUNCTION GETPATH(DefaultPath$, DlgTextID%) AS STRING
- SetSymbolValue "EditTextIn", DefaultPath$
- SetSymbolValue "EditFocus", "END"
- NewPath$ = DefaultPath$
-
- WHILE 1
- SetSymbolValue "FInCust", STR$(FINCUST%)
- CallDlg DESTPATHN, "FEditDlgProc", HELPPATH
- RemoveSymbol "FInCust"
-
- SELECT CASE DLG$
- CASE "CONTINUE"
- NewPath$ = GetSymbolValue("EditTextOut")
-
- IF IsDirWritable(NewPath$) = 0 THEN
- WHILE 1
- CallDlg BADPATH, "FInfo0DlgProc", APPHELP
- IF DLG$ <> "REACTIVATE" THEN
- EXIT WHILE
- END IF
- WEND
- UIPop 1
- ELSEIF DoesFileExist(MakePath(NewPath$,"MSPUB.EXE"), femExists) THEN
- IF VAL(MID$(GetVersionOfFile(MakePath(NewPath$,"MSPUB.EXE")),1,1)) = 2 THEN
- ERROR STFPUBINST
- END IF
- WHILE 1
- CallDlg PREVPUB, "FInfo0DlgProc", APPHELP
- SELECT CASE DLG$
- CASE "CONTINUE"
- UIPOP 1
- GOTO GOTPATH
- CASE "REACTIVATE"
- CASE ELSE
- UIPOP 1
- EXIT WHILE
- END SELECT
- WEND
- ELSE
- GOTPATH:
- UIPop 1
-
- GETPATH = NewPath$
- EXIT WHILE
- END IF
-
- CASE "REACTIVATE"
- CASE ELSE
- IF FINCUST% = 1 THEN
- UIPop 1
- GETPATH = DefaultPath$
- EXIT WHILE
- END IF
-
- QuitProc
- END SELECT
- WEND
-
- RemoveSymbol "EditTextIn"
- RemoveSymbol "EditFocus"
- DefaultPath$ = ""
- NewPath$ = ""
-
- END FUNCTION
-
- SUB QuitProc STATIC
- WHILE 1
- CallDlg ASKQUIT, "FQuitDlgProc", APPHELP
-
- IF DLG$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSE
- UIPop 1
- EXIT WHILE
- END IF
- WEND
- END SUB
-
-